﻿using PicView.Core.Localization;
using R3;

namespace PicView.Core.ViewModels;

public class TranslationViewModel : IDisposable
{
    public void Dispose()
    {
        Disposable.Dispose(File, SelectFile, OpenLastFile);
    }

    public void UpdateLanguage()
    {
        var t = TranslationManager.Translation;

        _1Star.Value = t._1Star;
        _2Star.Value = t._2Star;
        _3Star.Value = t._3Star;
        _4Star.Value = t._4Star;
        _5Star.Value = t._5Star;
        About.Value = t.About;
        AddFiles.Value = t.AddFiles;
        AddFolder.Value = t.AddFolder;
        AdditionalFunctions.Value = t.AdditionalFunctions;
        AboutWindow.Value = t.InfoWindow;
        AdjustNavSpeed.Value = t.AdjustNavSpeed;
        AdjustTimingForSlideshow.Value = t.AdjustTimingForSlideshow;
        AdjustTimingForZoom.Value = t.AdjustTimingForZoom;
        AdvanceBy10Images.Value = t.AdvanceBy10Images;
        AdvanceBy100Images.Value = t.AdvanceBy100Images;
        AllowZoomOut.Value = t.AllowZoomOut;
        Altitude.Value = t.Altitude;
        Appearance.Value = t.Appearance;
        ApplicationShortcuts.Value = t.ApplicationShortcuts;
        ApplicationStartup.Value = t.ApplicationStartup;
        Apply.Value = t.Apply;
        Ascending.Value = t.Ascending;
        Authors.Value = t.Authors;
        AutoFitWindow.Value = t.AutoFitWindow;
        BatchResize.Value = t.BatchResize;
        BitDepth.Value = t.BitDepth;
        BlackAndWhite.Value = t.BlackAndWhite;
        Blur.Value = t.Blur;
        Bottom.Value = t.Bottom;
        BottomGalleryItemSize.Value = t.BottomGalleryItemSize;
        BottomGalleryThumbnailStretch.Value = t.BottomGalleryThumbnailStretch;
        Brightness.Value = t.Brightness;
        CameraMaker.Value = t.CameraMaker;
        CameraModel.Value = t.CameraModel;
        Cancel.Value = t.Cancel;
        Center.Value = t.Center;
        CenterWindow.Value = t.CenterWindow;
        Centimeters.Value = t.Centimeters;
        ChangeBackground.Value = t.ChangeBackground;
        ChangeKeybindingText.Value = t.ChangeKeybindingText;
        ChangeKeybindingTooltip.Value = t.ChangeKeybindingTooltip;
        ChangingThemeRequiresRestart.Value = t.ChangingThemeRequiresRestart;
        CheckForUpdates.Value = t.CheckForUpdates;
        Clear.Value = t.Clear;
        ClearEffects.Value = t.ClearEffects;
        Close.Value = t.Close;
        CloseGallery.Value = t.CloseGallery;
        CloseWindowPrompt.Value = t.CloseWindowPrompt;
        Color.Value = t.Color;
        ColorPickerTool.Value = t.ColorPickerTool;
        ColorPickerToolTooltip.Value = t.ColorPickerToolTooltip;
        ColorRepresentation.Value = t.ColorRepresentation;
        Comment.Value = t.Comment;
        CompressedBitsPixel.Value = t.CompressedBitsPixel;
        Compression.Value = t.Compression;
        ConstrainBackgroundToImage.Value = t.ConstrainBackgroundToImage;
        Contrast.Value = t.Contrast;
        ConvertTo.Value = t.ConvertTo;
        Copies.Value = t.Copies;
        Copy.Value = t.Copy;
        CopyFile.Value = t.CopyFile;
        CopyImage.Value = t.CopyImage;
        Copyright.Value = t.Copyright;
        Created.Value = t.Created;
        CreationTime.Value = t.CreationTime;
        Credits.Value = t.Credits;
        Crop.Value = t.Crop;
        CtrlToZoom.Value = t.CtrlToZoom;
        DarkTheme.Value = t.DarkTheme;
        DateTaken.Value = t.DateTaken;
        DeleteFile.Value = t.DeleteFile;
        Descending.Value = t.Descending;
        DigitalZoom.Value = t.DigitalZoom;
        DisableFadeInButtonsOnHover.Value = t.DisableFadeInButtonsOnHover;
        DoubleClick.Value = t.DoubleClick;
        Downloading.Value = t.Downloading;
        DuplicateFile.Value = t.DuplicateFile;
        Edit.Value = t.Edit;
        Effects.Value = t.Effects;
        EffectsTooltip.Value = t.EffectsTooltip;
        ExifVersion.Value = t.ExifVersion;
        ExpandedGalleryItemSize.Value = t.ExpandedGalleryItemSize;
        ExposureBias.Value = t.ExposureBias;
        ExposureProgram.Value = t.ExposureProgram;
        ExposureTime.Value = t.ExposureTime;
        File.Value = string.Concat(t.File[0].ToString().ToUpper(), t.File.AsSpan(1));
        Files.Value = t.Files;
        FileAssociations.Value = t.FileAssociations;
        FileConversion.Value = t.FileConversion;
        FileCopyPath.Value = t.FileCopyPath;
        FileCut.Value = t.Cut;
        FileExtension.Value = t.FileExtension;
        FileManagement.Value = t.FileManagement;
        FileName.Value = t.FileName;
        FileProperties.Value = t.FileProperties;
        FileSize.Value = t.FileSize;
        Fill.Value = t.Fill;
        FillSquare.Value = t.FillSquare;
        Filter.Value = t.Filter;
        FirstImage.Value = t.FirstImage;
        Fit.Value = t.Fit;
        FlashEnergy.Value = t.FlashEnergy;
        FlashMode.Value = t.FlashMode;
        Flip.Value = t.Flip;
        Fnumber.Value = t.FNumber;
        FocalLength.Value = t.FocalLength;
        FocalLength35mm.Value = t.FocalLength35mm;
        Folder.Value = t.Folder;
        Forward.Value = t.Forward;
        Fstop.Value = t.Fstop;
        Fullscreen.Value = t.Fullscreen;
        FullPath.Value = t.FullPath;
        GallerySettings.Value = t.GallerySettings;
        GalleryThumbnailStretch.Value = t.GalleryThumbnailStretch;
        GeneralSettings.Value = t.GeneralSettings;
        GenerateThumbnails.Value = t.GenerateThumbnails;
        GithubRepo.Value = t.GithubRepo;
        GlassTheme.Value = t.GlassTheme;
        GoBackBy10Images.Value = t.GoBackBy10Images;
        GoBackBy100Images.Value = t.GoBackBy100Images;
        Height.Value = t.Height;
        Help.Value = t.Help;
        HideBottomGallery.Value = t.HideBottomGallery;
        HideBottomToolbar.Value = t.HideBottomToolbar;
        HideHoverNavigationBar.Value = t.HideHoverNavigationBar;
        HideUI.Value = t.HideUI;
        HighlightColor.Value = t.HighlightColor;
        HighQuality.Value = t.HighQuality;
        Image.Value = t.Image;
        ImageAliasing.Value = t.ImageAliasing;
        ImageControl.Value = t.ImageControl;
        ImageFormat.Value = t.ImageFormat;
        ImageInfo.Value = t.ImageInfo;
        Inches.Value = t.Inches;
        InterfaceConfiguration.Value = t.InterfaceConfiguration;
        ISOSpeed.Value = t.ISOSpeed;
        Language.Value = t.Language;
        LastAccessTime.Value = t.LastAccessTime;
        LastImage.Value = t.LastImage;
        Latitude.Value = t.Latitude;
        Left.Value = t.Left;
        LensMaker.Value = t.LensMaker;
        LensModel.Value = t.LensModel;
        Lighting.Value = t.Lighting;
        LightSource.Value = t.LightSource;
        LightTheme.Value = t.LightTheme;
        Longitude.Value = t.Longitude;
        Lossless.Value = t.Lossless;
        Lossy.Value = t.Lossy;
        Margins.Value = t.Margins;
        MaxAperture.Value = t.MaxAperture;
        Maximize.Value = t.Maximize;
        MeteringMode.Value = t.MeteringMode;
        MiscSettings.Value = t.MiscSettings;
        Modified.Value = t.Modified;
        Mouse.Value = t.Mouse;
        MouseDrag.Value = t.MouseDrag;
        MouseSideButtons.Value = t.MouseSideButtons;
        MouseWheel.Value = t.MouseWheel;
        MoveToRecycleBin.Value = t.MoveToRecycleBin;
        MoveWindow.Value = t.MoveWindow;
        Navigate.Value = t.Navigate;
        NavigateBackwards.Value = t.NavigateBackwards;
        NavigateBetweenDirectories.Value = t.NavigateBetweenDirectories;
        NavigateFileHistory.Value = t.NavigateFileHistory;
        NavigateForwards.Value = t.NavigateForwards;
        Navigation.Value = t.Navigation;
        NegativeColors.Value = t.NegativeColors;
        NewWindow.Value = t.NewWindow;
        NextFolder.Value = t.NextFolder;
        NextImage.Value = t.NextImage;
        NoConversion.Value = t.NoConversion;
        None.Value = t.None;
        NoResize.Value = t.NoResize;
        Normal.Value = t.Normal;
        NormalWindow.Value = t.NormalWindow;
        OldMovie.Value = t.OldMovie;
        Open.Value = t.Open;
        OpenFileDialog.Value = t.OpenFileDialog;
        OpenFileHistory.Value = t.OpenFileHistory;
        OpenInSameWindow.Value = t.OpenInSameWindow;
        OpenLastFile.Value = t.OpenLastFile;
        OpenWith.Value = t.OpenWith;
        OptimizeImage.Value = t.OptimizeImage;
        Orientation.Value = t.Orientation;
        OutputFolder.Value = t.OutputFolder;
        Pan.Value = t.Pan;
        PaperSize.Value = t.PaperSize;
        Paste.Value = t.FilePaste;
        PencilSketch.Value = t.PencilSketch;
        Percentage.Value = t.Percentage;
        PermanentlyDelete.Value = t.PermanentlyDelete;
        PhotometricInterpretation.Value = t.PhotometricInterpretation;
        Pin.Value = t.Pin;
        Pinned.Value = t.Pinned;
        Pixels.Value = t.Pixels;
        Posterize.Value = t.Posterize;
        PrevFolder.Value = t.PrevFolder;
        PrevImage.Value = t.PrevImage;
        Print.Value = t.Print;
        Printer.Value = t.Printer;
        PrintSizeCm.Value = t.PrintSizeCm;
        PrintSizeIn.Value = t.PrintSizeIn;
        Quality.Value = t.Quality;
        Random.Value = t.Random;
        ReadAbleAspectRatio.Value = t.AspectRatio;
        RecentFiles.Value = t.RecentFiles;
        Reload.Value = t.Reload;
        RemoveAll.Value = t.RemoveAll;
        RemoveImageData.Value = t.RemoveImageData;
        RemoveStarRating.Value = t.RemoveStarRating;
        RenameFile.Value = t.RenameFile;
        Reset.Value = t.Reset;
        ResetButtonText.Value = t.ResetButtonText;
        ResetZoom.Value = t.ResetZoom;
        Resize.Value = t.Resize;
        ResizeImage.Value = t.ResizeImage;
        ResizeSettings.Value = t.ResizeSettings;
        Resolution.Value = t.Resolution;
        ResolutionUnit.Value = t.ResolutionUnit;
        RestoreDown.Value = t.RestoreDown;
        Reverse.Value = t.Reverse;
        Right.Value = t.Right;
        RotateLeft.Value = t.RotateLeft;
        RotateRight.Value = t.RotateRight;
        Saturation.Value = t.Saturation;
        Save.Value = t.Save;
        SaveAs.Value = t.SaveAs;
        Scale.Value = t.Scale;
        ScrollAndRotate.Value = t.ScrollAndRotate;
        ScrollDirection.Value = t.ScrollDirection;
        ScrollDisabled.Value = t.ScrollingDisabled;
        ScrollDown.Value = t.ScrollDown;
        ScrollEnabled.Value = t.ScrollingEnabled;
        ScrollToBottom.Value = t.ScrollToBottom;
        ScrollToTop.Value = t.ScrollToTop;
        ScrollToZoom.Value = t.ScrollToZoom;
        ScrollUp.Value = t.ScrollUp;
        Search.Value = t.Search;
        SearchSubdirectory.Value = t.SearchSubdirectory;
        SecAbbreviation.Value = t.SecAbbreviation;
        SelectAll.Value = t.SelectAll;
        SelectFile.Value = t.OpenFileDialog;
        SelectFiles.Value = t.SelectFiles;
        SelectFileTypesToAssociate.Value = t.SelectFileTypesToAssociate;
        SelectGalleryThumb.Value = t.SelectGalleryThumb;
        SetAsLockScreenImage.Value = t.SetAsLockScreenImage;
        SetAsWallpaper.Value = t.SetAsWallpaper;
        SetStarRating.Value = t.SetStarRating;
        Settings.Value = t.Settings;
        Sharpness.Value = t.Sharpness;
        ShowAllSettingsWindow.Value = t.ShowAllSettingsWindow;
        ShowBottomGallery.Value = t.ShowBottomGallery;
        ShowBottomGalleryWhenUiIsHidden.Value = t.ShowBottomGalleryWhenUiIsHidden;
        ShowBottomToolbar.Value = t.ShowBottomToolbar;
        ShowConfirmationDialogWhenMovingFileToRecycleBin.Value = t.ShowConfirmationDialogWhenMovingFileToRecycleBin;
        ShowConfirmationDialogWhenPermanentlyDeletingFile.Value = t.ShowConfirmationDialogWhenPermanentlyDeletingFile;
        ShowConfirmationOnEsc.Value = t.ShowConfirmationOnEsc;
        ShowFadeInButtonsOnHover.Value = t.ShowFadeInButtonsOnHover;
        ShowFileSavingDialog.Value = t.ShowFileSavingDialog;
        ShowHoverNavigationBar.Value = t.ShowHoverNavigationBar;
        ShowImageGallery.Value = t.ShowImageGallery;
        ShowInFolder.Value = t.ShowInFolder;
        ShowUI.Value = t.ShowUI;
        ShowZoomPercentagePopup.Value = t.ShowZoomPercentagePopup;
        SideBySide.Value = t.SideBySide;
        SideBySideTooltip.Value = t.SideBySideTooltip;
        SizeMp.Value = t.SizeMp;
        SizeTooltip.Value = t.SizeTooltip;
        Slideshow.Value = t.Slideshow;
        Software.Value = t.Software;
        Solarize.Value = t.Solarize;
        SortFilesBy.Value = t.SortFilesBy;
        Square.Value = t.Square;
        Start.Value = t.Start;
        StayCentered.Value = t.StayCentered;
        StayTopMost.Value = t.StayTopMost;
        Stretch.Value = t.Stretch;
        Subject.Value = t.Subject;
        Theme.Value = t.Theme;
        Thumbnail.Value = t.Thumbnail;
        Tile.Value = t.Tile;
        Title.Value = t.Title;
        ToggleFullscreen.Value = t.ToggleFullscreen;
        ToggleLooping.Value = t.ToggleLooping;
        ToggleScroll.Value = t.ToggleScroll;
        ToggleTaskbarProgress.Value = t.ToggleTaskbarProgress;
        ToolWindows.Value = t.ToolWindows;
        Top.Value = t.Top;
        Unassociate.Value = t.Unassociate;
        UnFlip.Value = t.Unflip;
        Uniform.Value = t.Uniform;
        UniformToFill.Value = t.UniformToFill;
        Unpin.Value = t.Unpin;
        UnselectAll.Value = t.UnselectAll;
        UseAnimatedZoom.Value = t.UseAnimatedZoom;
        UsingMouse.Value = t.UsingMouse;
        UsingTouchpad.Value = t.UsingTouchpad;
        Version.Value = t.Version;
        View.Value = t.View;
        ViewLicenseFile.Value = t.ViewLicenseFile;
        WhenDeletingAFile.Value = t.WhenDeletingAFile;
        WhiteBalance.Value = t.WhiteBalance;
        Width.Value = t.Width;
        WidthAndHeight.Value = t.WidthAndHeight;
        Window.Value = t.Window;
        WindowManagement.Value = t.WindowManagement;
        WindowMargin.Value = t.WindowMargin;
        WindowScaling.Value = t.WindowScaling;
        Zoom.Value = t.Zoom;
        ZoomIn.Value = t.ZoomIn;
        ZoomOut.Value = t.ZoomOut;
    }

    #region Static Translation Strings

    public BindableReactiveProperty<string?> _1Star { get; } = new();
    public BindableReactiveProperty<string?> _2Star { get; } = new();
    public BindableReactiveProperty<string?> _3Star { get; } = new();
    public BindableReactiveProperty<string?> _4Star { get; } = new();
    public BindableReactiveProperty<string?> _5Star { get; } = new();
    public BindableReactiveProperty<string?> About { get; } = new();
    public BindableReactiveProperty<string?> AddFiles { get; } = new();
    public BindableReactiveProperty<string?> AddFolder { get; } = new();
    public BindableReactiveProperty<string?> AdditionalFunctions { get; } = new();
    public BindableReactiveProperty<string?> AboutWindow { get; } = new();
    public BindableReactiveProperty<string?> AdjustNavSpeed { get; } = new();
    public BindableReactiveProperty<string?> AdjustTimingForSlideshow { get; } = new();
    public BindableReactiveProperty<string?> AdjustTimingForZoom { get; } = new();
    public BindableReactiveProperty<string?> AdvanceBy100Images { get; } = new();
    public BindableReactiveProperty<string?> AdvanceBy10Images { get; } = new();
    public BindableReactiveProperty<string?> AllowZoomOut { get; } = new();
    public BindableReactiveProperty<string?> Altitude { get; } = new();
    public BindableReactiveProperty<string?> Appearance { get; } = new();
    public BindableReactiveProperty<string?> ApplicationShortcuts { get; } = new();
    public BindableReactiveProperty<string?> ApplicationStartup { get; } = new();
    public BindableReactiveProperty<string?> Apply { get; } = new();
    public BindableReactiveProperty<string?> Ascending { get; } = new();
    public BindableReactiveProperty<string?> Authors { get; } = new();
    public BindableReactiveProperty<string?> AutoFitWindow { get; } = new();
    public BindableReactiveProperty<string?> BatchResize { get; } = new();
    public BindableReactiveProperty<string?> BitDepth { get; } = new();
    public BindableReactiveProperty<string?> BlackAndWhite { get; } = new();
    public BindableReactiveProperty<string?> Blur { get; } = new();
    public BindableReactiveProperty<string?> BottomGalleryItemSize { get; } = new();
    public BindableReactiveProperty<string?> BottomGalleryThumbnailStretch { get; } = new();
    public BindableReactiveProperty<string?> Brightness { get; } = new();
    public BindableReactiveProperty<string?> CameraMaker { get; } = new();
    public BindableReactiveProperty<string?> CameraModel { get; } = new();
    public BindableReactiveProperty<string?> Cancel { get; } = new();
    public BindableReactiveProperty<string?> Center { get; } = new();
    public BindableReactiveProperty<string?> CenterWindow { get; } = new();
    public BindableReactiveProperty<string?> Centimeters { get; } = new();
    public BindableReactiveProperty<string?> ChangeBackground { get; } = new();
    public BindableReactiveProperty<string?> ChangeKeybindingText { get; } = new();
    public BindableReactiveProperty<string?> ChangeKeybindingTooltip { get; } = new();
    public BindableReactiveProperty<string?> ChangingThemeRequiresRestart { get; } = new();
    public BindableReactiveProperty<string?> CheckForUpdates { get; } = new();
    public BindableReactiveProperty<string?> Clear { get; } = new();
    public BindableReactiveProperty<string?> ClearEffects { get; } = new();
    public BindableReactiveProperty<string?> Close { get; } = new();
    public BindableReactiveProperty<string?> CloseGallery { get; } = new();
    public BindableReactiveProperty<string?> CloseWindowPrompt { get; } = new();
    public BindableReactiveProperty<string?> ColorPickerTool { get; } = new();
    public BindableReactiveProperty<string?> ColorPickerToolTooltip { get; } = new();
    public BindableReactiveProperty<string?> ColorRepresentation { get; } = new();
    public BindableReactiveProperty<string?> Comment { get; } = new();
    public BindableReactiveProperty<string?> CompressedBitsPixel { get; } = new();
    public BindableReactiveProperty<string?> Compression { get; } = new();
    public BindableReactiveProperty<string?> ConstrainBackgroundToImage { get; } = new();
    public BindableReactiveProperty<string?> Contrast { get; } = new();
    public BindableReactiveProperty<string?> ConvertTo { get; } = new();
    public BindableReactiveProperty<string?> Copy { get; } = new();
    public BindableReactiveProperty<string?> CopyFile { get; } = new();
    public BindableReactiveProperty<string?> CopyImage { get; } = new();
    public BindableReactiveProperty<string?> Copyright { get; } = new();
    public BindableReactiveProperty<string?> Created { get; } = new();
    public BindableReactiveProperty<string?> CreationTime { get; } = new();
    public BindableReactiveProperty<string?> Credits { get; } = new();
    public BindableReactiveProperty<string?> Crop { get; } = new();
    public BindableReactiveProperty<string?> CtrlToZoom { get; } = new();
    public BindableReactiveProperty<string?> DarkTheme { get; } = new();
    public BindableReactiveProperty<string?> DateTaken { get; } = new();
    public BindableReactiveProperty<string?> DeleteFile { get; } = new();
    public BindableReactiveProperty<string?> Descending { get; } = new();
    public BindableReactiveProperty<string?> DigitalZoom { get; } = new();
    public BindableReactiveProperty<string?> DisableFadeInButtonsOnHover { get; } = new();
    public BindableReactiveProperty<string?> DoubleClick { get; } = new();
    public BindableReactiveProperty<string?> Downloading { get; } = new();
    public BindableReactiveProperty<string?> DuplicateFile { get; } = new();
    public BindableReactiveProperty<string?> Edit { get; } = new();
    public BindableReactiveProperty<string?> Effects { get; } = new();
    public BindableReactiveProperty<string?> EffectsTooltip { get; } = new();
    public BindableReactiveProperty<string?> ExifVersion { get; } = new();
    public BindableReactiveProperty<string?> ExpandedGalleryItemSize { get; } = new();
    public BindableReactiveProperty<string?> ExposureBias { get; } = new();
    public BindableReactiveProperty<string?> ExposureProgram { get; } = new();
    public BindableReactiveProperty<string?> ExposureTime { get; } = new();
    public BindableReactiveProperty<string?> File { get; } = new();
    public BindableReactiveProperty<string?> Files { get; } = new();
    public BindableReactiveProperty<string?> FileAssociations { get; } = new();
    public BindableReactiveProperty<string?> FileConversion { get; } = new();
    public BindableReactiveProperty<string?> FileCopyPath { get; } = new();
    public BindableReactiveProperty<string?> FileCut { get; } = new();
    public BindableReactiveProperty<string?> FileExtension { get; } = new();
    public BindableReactiveProperty<string?> FileManagement { get; } = new();
    public BindableReactiveProperty<string?> FileName { get; } = new();
    public BindableReactiveProperty<string?> FileProperties { get; } = new();
    public BindableReactiveProperty<string?> FileSize { get; } = new();
    public BindableReactiveProperty<string?> Fill { get; } = new();
    public BindableReactiveProperty<string?> FillSquare { get; } = new();
    public BindableReactiveProperty<string?> Filter { get; } = new();
    public BindableReactiveProperty<string?> FirstImage { get; } = new();
    public BindableReactiveProperty<string?> Fit { get; } = new();
    public BindableReactiveProperty<string?> FlashEnergy { get; } = new();
    public BindableReactiveProperty<string?> FlashMode { get; } = new();
    public BindableReactiveProperty<string?> Flip { get; } = new();
    public BindableReactiveProperty<string?> Fnumber { get; } = new();
    public BindableReactiveProperty<string?> FocalLength { get; } = new();
    public BindableReactiveProperty<string?> FocalLength35mm { get; } = new();
    public BindableReactiveProperty<string?> Folder { get; } = new();
    public BindableReactiveProperty<string?> Forward { get; } = new();
    public BindableReactiveProperty<string?> Fstop { get; } = new();
    public BindableReactiveProperty<string?> FullPath { get; } = new();
    public BindableReactiveProperty<string?> Fullscreen { get; } = new();
    public BindableReactiveProperty<string?> GallerySettings { get; } = new();
    public BindableReactiveProperty<string?> GalleryThumbnailStretch { get; } = new();
    public BindableReactiveProperty<string?> GeneralSettings { get; } = new();
    public BindableReactiveProperty<string?> GenerateThumbnails { get; } = new();
    public BindableReactiveProperty<string?> GithubRepo { get; } = new();
    public BindableReactiveProperty<string?> GlassTheme { get; } = new();
    public BindableReactiveProperty<string?> GoBackBy100Images { get; } = new();
    public BindableReactiveProperty<string?> GoBackBy10Images { get; } = new();
    public BindableReactiveProperty<string?> Height { get; } = new();
    public BindableReactiveProperty<string?> Help { get; } = new();
    public BindableReactiveProperty<string?> HideBottomGallery { get; } = new();
    public BindableReactiveProperty<string?> HideBottomToolbar { get; } = new();
    public BindableReactiveProperty<string?> HideHoverNavigationBar { get; } = new();
    public BindableReactiveProperty<string?> HideUI { get; } = new();
    public BindableReactiveProperty<string?> HighlightColor { get; } = new();
    public BindableReactiveProperty<string?> HighQuality { get; } = new();
    public BindableReactiveProperty<string?> Image { get; } = new();
    public BindableReactiveProperty<string?> ImageAliasing { get; } = new();
    public BindableReactiveProperty<string?> ImageControl { get; } = new();
    public BindableReactiveProperty<string?> ImageFormat { get; } = new();
    public BindableReactiveProperty<string?> ImageInfo { get; } = new();
    public BindableReactiveProperty<string?> Inches { get; } = new();
    public BindableReactiveProperty<string?> InterfaceConfiguration { get; } = new();
    public BindableReactiveProperty<string?> ISOSpeed { get; } = new();
    public BindableReactiveProperty<string?> Language { get; } = new();
    public BindableReactiveProperty<string?> LastAccessTime { get; } = new();
    public BindableReactiveProperty<string?> LastImage { get; } = new();
    public BindableReactiveProperty<string?> Latitude { get; } = new();
    public BindableReactiveProperty<string?> LensMaker { get; } = new();
    public BindableReactiveProperty<string?> LensModel { get; } = new();
    public BindableReactiveProperty<string?> Lighting { get; } = new();
    public BindableReactiveProperty<string?> LightSource { get; } = new();
    public BindableReactiveProperty<string?> LightTheme { get; } = new();
    public BindableReactiveProperty<string?> Longitude { get; } = new();
    public BindableReactiveProperty<string?> Lossless { get; } = new();
    public BindableReactiveProperty<string?> Lossy { get; } = new();
    public BindableReactiveProperty<string?> MaxAperture { get; } = new();
    public BindableReactiveProperty<string?> Maximize { get; } = new();
    public BindableReactiveProperty<string?> MeteringMode { get; } = new();
    public BindableReactiveProperty<string?> MiscSettings { get; } = new();
    public BindableReactiveProperty<string?> Modified { get; } = new();
    public BindableReactiveProperty<string?> Mouse { get; } = new();
    public BindableReactiveProperty<string?> MouseDrag { get; } = new();
    public BindableReactiveProperty<string?> MouseSideButtons { get; } = new();
    public BindableReactiveProperty<string?> MouseWheel { get; } = new();
    public BindableReactiveProperty<string?> MoveToRecycleBin { get; } = new();
    public BindableReactiveProperty<string?> MoveWindow { get; } = new();
    public BindableReactiveProperty<string?> Navigate { get; } = new();
    public BindableReactiveProperty<string?> NavigateBackwards { get; } = new();
    public BindableReactiveProperty<string?> NavigateBetweenDirectories { get; } = new();
    public BindableReactiveProperty<string?> NavigateFileHistory { get; } = new();
    public BindableReactiveProperty<string?> NavigateForwards { get; } = new();
    public BindableReactiveProperty<string?> Navigation { get; } = new();
    public BindableReactiveProperty<string?> NegativeColors { get; } = new();
    public BindableReactiveProperty<string?> NewWindow { get; } = new();
    public BindableReactiveProperty<string?> NextFolder { get; } = new();
    public BindableReactiveProperty<string?> NextImage { get; } = new();
    public BindableReactiveProperty<string?> NoConversion { get; } = new();
    public BindableReactiveProperty<string?> None { get; } = new();
    public BindableReactiveProperty<string?> NoResize { get; } = new();
    public BindableReactiveProperty<string?> Normal { get; } = new();
    public BindableReactiveProperty<string?> NormalWindow { get; } = new();
    public BindableReactiveProperty<string?> OldMovie { get; } = new();
    public BindableReactiveProperty<string?> Open { get; } = new();
    public BindableReactiveProperty<string?> OpenFileDialog { get; } = new();
    public BindableReactiveProperty<string?> OpenFileHistory { get; } = new();
    public BindableReactiveProperty<string?> OpenInSameWindow { get; } = new();
    public BindableReactiveProperty<string?> OpenLastFile { get; } = new();
    public BindableReactiveProperty<string?> OpenWith { get; } = new();
    public BindableReactiveProperty<string?> OptimizeImage { get; } = new();
    public BindableReactiveProperty<string?> Orientation { get; } = new();
    public BindableReactiveProperty<string?> OutputFolder { get; } = new();
    public BindableReactiveProperty<string?> Pan { get; } = new();
    public BindableReactiveProperty<string?> Paste { get; } = new();
    public BindableReactiveProperty<string?> PencilSketch { get; } = new();
    public BindableReactiveProperty<string?> Percentage { get; } = new();
    public BindableReactiveProperty<string?> PermanentlyDelete { get; } = new();
    public BindableReactiveProperty<string?> PhotometricInterpretation { get; } = new();
    public BindableReactiveProperty<string?> Pin { get; } = new();
    public BindableReactiveProperty<string?> Pinned { get; } = new();
    public BindableReactiveProperty<string?> Pixels { get; } = new();
    public BindableReactiveProperty<string?> Posterize { get; } = new();
    public BindableReactiveProperty<string?> PrevFolder { get; } = new();
    public BindableReactiveProperty<string?> PrevImage { get; } = new();
    public BindableReactiveProperty<string?> Print { get; } = new();
    public BindableReactiveProperty<string?> PrintSizeCm { get; } = new();
    public BindableReactiveProperty<string?> PrintSizeIn { get; } = new();
    public BindableReactiveProperty<string?> Quality { get; } = new();
    public BindableReactiveProperty<string?> Random { get; } = new();
    public BindableReactiveProperty<string?> ReadAbleAspectRatio { get; } = new();
    public BindableReactiveProperty<string?> RecentFiles { get; } = new();
    public BindableReactiveProperty<string?> Reload { get; } = new();
    public BindableReactiveProperty<string?> RemoveAll { get; } = new();
    public BindableReactiveProperty<string?> RemoveImageData { get; } = new();
    public BindableReactiveProperty<string?> RemoveStarRating { get; } = new();
    public BindableReactiveProperty<string?> RenameFile { get; } = new();
    public BindableReactiveProperty<string?> Reset { get; } = new();
    public BindableReactiveProperty<string?> ResetButtonText { get; } = new();
    public BindableReactiveProperty<string?> ResetZoom { get; } = new();
    public BindableReactiveProperty<string?> Resize { get; } = new();
    public BindableReactiveProperty<string?> ResizeImage { get; } = new();
    public BindableReactiveProperty<string?> ResizeSettings { get; } = new();
    public BindableReactiveProperty<string?> Resolution { get; } = new();
    public BindableReactiveProperty<string?> ResolutionUnit { get; } = new();
    public BindableReactiveProperty<string?> RestoreDown { get; } = new();
    public BindableReactiveProperty<string?> Reverse { get; } = new();
    public BindableReactiveProperty<string?> RotateLeft { get; } = new();
    public BindableReactiveProperty<string?> RotateRight { get; } = new();
    public BindableReactiveProperty<string?> Saturation { get; } = new();
    public BindableReactiveProperty<string?> Save { get; } = new();
    public BindableReactiveProperty<string?> SaveAs { get; } = new();
    public BindableReactiveProperty<string?> ScrollAndRotate { get; } = new();
    public BindableReactiveProperty<string?> ScrollDirection { get; } = new();
    public BindableReactiveProperty<string?> ScrollDisabled { get; } = new();
    public BindableReactiveProperty<string?> ScrollDown { get; } = new();
    public BindableReactiveProperty<string?> ScrollEnabled { get; } = new();
    public BindableReactiveProperty<string?> ScrollToBottom { get; } = new();
    public BindableReactiveProperty<string?> ScrollToTop { get; } = new();
    public BindableReactiveProperty<string?> ScrollToZoom { get; } = new();
    public BindableReactiveProperty<string?> ScrollUp { get; } = new();
    public BindableReactiveProperty<string?> Search { get; } = new();
    public BindableReactiveProperty<string?> SearchSubdirectory { get; } = new();
    public BindableReactiveProperty<string?> SecAbbreviation { get; } = new();
    public BindableReactiveProperty<string?> SelectAll { get; } = new();
    public BindableReactiveProperty<string?> SelectFile { get; } = new();
    public BindableReactiveProperty<string?> SelectFileTypesToAssociate { get; } = new();
    public BindableReactiveProperty<string?> SelectFiles { get; } = new();
    public BindableReactiveProperty<string?> SelectGalleryThumb { get; } = new();
    public BindableReactiveProperty<string?> SetAsLockScreenImage { get; } = new();
    public BindableReactiveProperty<string?> SetAsWallpaper { get; } = new();
    public BindableReactiveProperty<string?> SetStarRating { get; } = new();
    public BindableReactiveProperty<string?> Settings { get; } = new();
    public BindableReactiveProperty<string?> Sharpness { get; } = new();
    public BindableReactiveProperty<string?> ShowAllSettingsWindow { get; } = new();
    public BindableReactiveProperty<string?> ShowBottomGallery { get; } = new();
    public BindableReactiveProperty<string?> ShowBottomGalleryWhenUiIsHidden { get; } = new();
    public BindableReactiveProperty<string?> ShowBottomToolbar { get; } = new();
    public BindableReactiveProperty<string?> ShowConfirmationDialogWhenMovingFileToRecycleBin { get; } = new();
    public BindableReactiveProperty<string?> ShowConfirmationDialogWhenPermanentlyDeletingFile { get; } = new();
    public BindableReactiveProperty<string?> ShowConfirmationOnEsc { get; } = new();
    public BindableReactiveProperty<string?> ShowFadeInButtonsOnHover { get; } = new();
    public BindableReactiveProperty<string?> ShowFileSavingDialog { get; } = new();
    public BindableReactiveProperty<string?> ShowHoverNavigationBar { get; } = new();
    public BindableReactiveProperty<string?> ShowImageGallery { get; } = new();
    public BindableReactiveProperty<string?> ShowInFolder { get; } = new();
    public BindableReactiveProperty<string?> ShowUI { get; } = new();
    public BindableReactiveProperty<string?> ShowZoomPercentagePopup { get; } = new();
    public BindableReactiveProperty<string?> SideBySide { get; } = new();
    public BindableReactiveProperty<string?> SideBySideTooltip { get; } = new();
    public BindableReactiveProperty<string?> SizeMp { get; } = new();
    public BindableReactiveProperty<string?> SizeTooltip { get; } = new();
    public BindableReactiveProperty<string?> Slideshow { get; } = new();
    public BindableReactiveProperty<string?> Software { get; } = new();
    public BindableReactiveProperty<string?> Solarize { get; } = new();
    public BindableReactiveProperty<string?> SortFilesBy { get; } = new();
    public BindableReactiveProperty<string?> Square { get; } = new();
    public BindableReactiveProperty<string?> Start { get; } = new();
    public BindableReactiveProperty<string?> StayCentered { get; } = new();
    public BindableReactiveProperty<string?> StayTopMost { get; } = new();
    public BindableReactiveProperty<string?> Stretch { get; } = new();
    public BindableReactiveProperty<string?> Subject { get; } = new();
    public BindableReactiveProperty<string?> Theme { get; } = new();
    public BindableReactiveProperty<string?> Thumbnail { get; } = new();
    public BindableReactiveProperty<string?> Tile { get; } = new();
    public BindableReactiveProperty<string?> Title { get; } = new();
    public BindableReactiveProperty<string?> ToggleFileHistory { get; } = new();
    public BindableReactiveProperty<string?> ToggleFullscreen { get; } = new();
    public BindableReactiveProperty<string?> ToggleLooping { get; } = new();
    public BindableReactiveProperty<string?> ToggleScroll { get; } = new();
    public BindableReactiveProperty<string?> ToggleTaskbarProgress { get; } = new();
    public BindableReactiveProperty<string?> ToolWindows { get; } = new();
    public BindableReactiveProperty<string?> Unassociate { get; } = new();
    public BindableReactiveProperty<string?> UnFlip { get; } = new();
    public BindableReactiveProperty<string?> Uniform { get; } = new();
    public BindableReactiveProperty<string?> UniformToFill { get; } = new();
    public BindableReactiveProperty<string?> Unpin { get; } = new();
    public BindableReactiveProperty<string?> UnselectAll { get; } = new();
    public BindableReactiveProperty<string?> UseAnimatedZoom { get; } = new();
    public BindableReactiveProperty<string?> UsingMouse { get; } = new();
    public BindableReactiveProperty<string?> UsingTouchpad { get; } = new();
    public BindableReactiveProperty<string?> Version { get; } = new();
    public BindableReactiveProperty<string?> View { get; } = new();
    public BindableReactiveProperty<string?> ViewLicenseFile { get; } = new();
    public BindableReactiveProperty<string?> WhenDeletingAFile { get; } = new();

    public BindableReactiveProperty<string?> WhiteBalance { get; } = new();

    public BindableReactiveProperty<string?> Width { get; } = new();

    public BindableReactiveProperty<string?> WidthAndHeight { get; } = new();

    public BindableReactiveProperty<string?> Window { get; } = new();
    public BindableReactiveProperty<string?> WindowManagement { get; } = new();

    public BindableReactiveProperty<string?> WindowMargin { get; } = new();

    public BindableReactiveProperty<string?> WindowScaling { get; } = new();
    public BindableReactiveProperty<string?> Zoom { get; } = new();

    public BindableReactiveProperty<string?> ZoomIn { get; } = new();

    public BindableReactiveProperty<string?> ZoomOut { get; } = new();

    #endregion strings

    #region Dynamic Translation strings

    public BindableReactiveProperty<string?> IsCtrlToZoom { get; } = new();

    public BindableReactiveProperty<string?> IsFlipped { get; } = new();

    public BindableReactiveProperty<string?> IsLooping { get; } = new();

    public BindableReactiveProperty<string?> IsScrolling { get; } = new();

    public BindableReactiveProperty<string?> IsShowingBottomGallery { get; } = new();

    public BindableReactiveProperty<string?> IsShowingBottomToolbar { get; } = new();

    public BindableReactiveProperty<string?> IsShowingFadingUIButtons { get; } = new();
    public BindableReactiveProperty<string?> IsShowingHoverNavigationBar { get; } = new();

    public BindableReactiveProperty<string?> IsShowingUI { get; } = new();
    public BindableReactiveProperty<string?> IsUsingTouchpad { get; } = new();


    public BindableReactiveProperty<string?> Printer { get; } = new();
    public BindableReactiveProperty<string?> PaperSize { get; } = new();
    public BindableReactiveProperty<string?> Scale { get; } = new();
    public BindableReactiveProperty<string?> Color { get; } = new();
    public BindableReactiveProperty<string?> Copies { get; } = new();
    public BindableReactiveProperty<string?> Margins { get; } = new();
    public BindableReactiveProperty<string?> Top { get; } = new();
    public BindableReactiveProperty<string?> Bottom { get; } = new();
    public BindableReactiveProperty<string?> Left { get; } = new();
    public BindableReactiveProperty<string?> Right { get; } = new();

    #endregion
}